Implement and ship RTCRtpSendParameters.degradationPreference Intent: https://groups.google.com/a/chromium.org/g/blink-dev/c/WPvxi5nUK2E/m/Xd0ZzPwxAwAJ Bug: 857041 Change-Id: I3f11c310624d5c2153eefbf9c1e08383d9aad4f8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2074777 Commit-Queue: Florent Castelli <orphis@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Auto-Submit: Florent Castelli <orphis@chromium.org> Cr-Commit-Position: refs/heads/master@{#755512} diff --git a/webrtc/RTCRtpParameters-codecs.html b/webrtc/RTCRtpParameters-codecs.html index fdb5844..f5fa65e 100644 --- a/webrtc/RTCRtpParameters-codecs.html +++ b/webrtc/RTCRtpParameters-codecs.html
@@ -28,7 +28,6 @@ sequence<RTCRtpHeaderExtensionParameters> headerExtensions; RTCRtcpParameters rtcp; sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; }; dictionary RTCRtpCodecParameters { diff --git a/webrtc/RTCRtpParameters-degradationPreference.html b/webrtc/RTCRtpParameters-degradationPreference.html deleted file mode 100644 index e2c92bc..0000000 --- a/webrtc/RTCRtpParameters-degradationPreference.html +++ /dev/null
@@ -1,87 +0,0 @@ -<!doctype html> -<meta charset=utf-8> -<title>RTCRtpParameters degradationPreference</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="dictionary-helper.js"></script> -<script src="RTCRtpParameters-helper.js"></script> -<script> - 'use strict'; - - // Test is based on the following editor draft: - // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html - - // The following helper functions are called from RTCRtpParameters-helper.js: - // validateSenderRtpParameters - - /* - 5.2. RTCRtpSender Interface - interface RTCRtpSender { - Promise<void> setParameters(optional RTCRtpParameters parameters); - RTCRtpParameters getParameters(); - }; - - dictionary RTCRtpParameters { - DOMString transactionId; - sequence<RTCRtpEncodingParameters> encodings; - sequence<RTCRtpHeaderExtensionParameters> headerExtensions; - RTCRtcpParameters rtcp; - sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; - }; - - enum RTCDegradationPreference { - "maintain-framerate", - "maintain-resolution", - "balanced" - }; - - - degradationPreference is set to the last value passed into setParameters, - or the default value of "balanced" if setParameters hasn't been called. - */ - - promise_test(t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - const { sender } = pc.addTransceiver('audio'); - - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, 'balanced', - 'Expect initial param.degradationPreference to be balanced'); - - param.degradationPreference = 'maintain-framerate'; - - return pc.setParameters(param) - .then(() => { - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, 'maintain-framerate'); - }); - }, 'setParameters with degradationPreference set should succeed'); - - promise_test(t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - const { sender } = pc.addTransceiver('audio'); - - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, 'balanced', - 'Expect initial param.degradationPreference to be balanced'); - - param.degradationPreference = undefined; - - return pc.setParameters(param) - .then(() => { - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, undefined); - }); - }, 'setParameters with degradationPreference unset should succeed'); - -</script> diff --git a/webrtc/RTCRtpParameters-encodings.html b/webrtc/RTCRtpParameters-encodings.html index 2f94186..00e8088 100644 --- a/webrtc/RTCRtpParameters-encodings.html +++ b/webrtc/RTCRtpParameters-encodings.html
@@ -41,7 +41,6 @@ sequence<RTCRtpHeaderExtensionParameters> headerExtensions; RTCRtcpParameters rtcp; sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; }; dictionary RTCRtpEncodingParameters { diff --git a/webrtc/RTCRtpParameters-headerExtensions.html b/webrtc/RTCRtpParameters-headerExtensions.html index 85c3338..7de2b75 100644 --- a/webrtc/RTCRtpParameters-headerExtensions.html +++ b/webrtc/RTCRtpParameters-headerExtensions.html
@@ -27,7 +27,6 @@ sequence<RTCRtpHeaderExtensionParameters> headerExtensions; RTCRtcpParameters rtcp; sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; }; dictionary RTCRtpHeaderExtensionParameters { diff --git a/webrtc/RTCRtpParameters-helper.js b/webrtc/RTCRtpParameters-helper.js index d61d8e1..17ecfba 100644 --- a/webrtc/RTCRtpParameters-helper.js +++ b/webrtc/RTCRtpParameters-helper.js
@@ -46,9 +46,6 @@ - rtcp.cname is set to the CNAME of the associated RTCPeerConnection. rtcp.reducedSize is set to true if reduced-size RTCP has been negotiated for sending, and false otherwise. - - - degradationPreference is set to the last value passed into setParameters, or the - default value of "balanced" if setParameters hasn't been called. */ function validateSenderRtpParameters(param) { validateRtpParameters(param); @@ -80,7 +77,7 @@ - rtcp.reducedSize is set to true if the receiver is currently prepared to receive reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined. - - transactionId and degradationPreference are left undefined. + - transactionId is left undefined. */ function validateReceiverRtpParameters(param) { validateRtpParameters(param); @@ -93,9 +90,6 @@ assert_equals(param.rtcp.cname, undefined, 'Expect receiver param.rtcp.cname to be unset'); - - assert_equals(param.degradationPreference, undefined, - 'Expect receiver param.degradationPreference to be unset'); } /* @@ -105,7 +99,6 @@ sequence<RTCRtpHeaderExtensionParameters> headerExtensions; RTCRtcpParameters rtcp; sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; }; enum RTCDegradationPreference { @@ -134,9 +127,6 @@ for(const codec of param.codecs) { validateCodecParameters(codec); } - - assert_optional_enum_field(param, 'degradationPreference', - ['maintain-framerate', 'maintain-resolution', 'balanced']); } /* @@ -307,4 +297,4 @@ const encoding2 = getFirstEncoding(param2); assert_equals(encoding2[field], value2); }, desc + ' without RTCRtpTransceiverInit'); -} \ No newline at end of file +} diff --git a/webrtc/RTCRtpParameters-rtcp.html b/webrtc/RTCRtpParameters-rtcp.html index 82fb49b..7965304 100644 --- a/webrtc/RTCRtpParameters-rtcp.html +++ b/webrtc/RTCRtpParameters-rtcp.html
@@ -27,7 +27,6 @@ sequence<RTCRtpHeaderExtensionParameters> headerExtensions; RTCRtcpParameters rtcp; sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; }; dictionary RTCRtcpParameters { diff --git a/webrtc/RTCRtpParameters-transactionId.html b/webrtc/RTCRtpParameters-transactionId.html index ae56fb4..a7b7865 100644 --- a/webrtc/RTCRtpParameters-transactionId.html +++ b/webrtc/RTCRtpParameters-transactionId.html
@@ -48,7 +48,6 @@ sequence<RTCRtpHeaderExtensionParameters> headerExtensions; RTCRtcpParameters rtcp; sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; }; getParameters
diff --git a/webrtc/RTCRtpReceiver-getParameters.html b/webrtc/RTCRtpReceiver-getParameters.html index 7f8ac67..4be0e3b 100644 --- a/webrtc/RTCRtpReceiver-getParameters.html +++ b/webrtc/RTCRtpReceiver-getParameters.html
@@ -30,9 +30,7 @@ - rtcp.reducedSize is set to true if the receiver is currently prepared to receive reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined. - - - transactionId and degradationPreference are left undefined. - */ + */ promise_test(async t => { const pc = new RTCPeerConnection(); t.add_cleanup(() => pc.close());